package com.design.springboot.booksharing.dao;

import com.design.springboot.booksharing.bean.QueryWarp;
import com.design.springboot.booksharing.bean.User;

import java.util.List;

/**
 * 用户信息表(User)表数据库访问层
 */
public interface UserDao {

    /**
     * 新增数据
     *
     * @param user 实例对象
     * @return 影响行数
     */
    Integer saveUser(User user);

    /**
     * 批量新增数据
     *
     * @param list user 实例集合对象
     * @return 结果
     */
    Integer batchSaveUser(List<User> list);

    /**
     * 通过主键 id 字段删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    Integer deleteUser(Integer id);

    /**
     * 通过主键 id 字段修改数据
     *
     * @param user 实例对象
     * @return 影响行数
     */
    Integer updateUser(User user);

    /**
     * 通过主键 id 字段查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    User getUserById(Integer id);

    /**
     * 通过登录账号(学号) account 字段查询单条数据
     *
     * @param account 登录账号(学号)
     * @return 实例对象
     */
    User getUserByAccount(String account);

    /**
     * 查询所有的行数据
     *
     * @return 对象列表
     */
    List<User> listUser(QueryWarp<User> userQueryWarp);
}
